﻿using AttributeDemo.CustomAttribute;
using System;
using System.Collections.Generic;
using System.Reflection;
using System.Text;

namespace AttributeDemo.UseAttribute
{
    public static class UseIdCardAttribute
    {
        public static bool Validate<T>(T t) where T : class
        {
            Type type = t.GetType();
            foreach (var prop in type.GetProperties())
            {
                if (prop.IsDefined(typeof(IdCardAttribute), true))
                {
                    var value = prop.GetValue(t);
                    IdCardAttribute attribute = (IdCardAttribute)prop.GetCustomAttribute(typeof(IdCardAttribute), true);
                    if (attribute.Validate(value))
                    {
                        return true;
                    }
                    else
                    {
                        return false;
                    }
                }
            }

            return false;
        }
    }
}
